﻿//TraderStorageFilters.cs
//Copyright (c) 2013 StockSharp LLC, all rights reserved.
//This code module is part of StockSharp library.
//This code is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.
//See the file License.txt for the license details.
//More info on: http://stocksharp.com

namespace StockSharp.Algo.Storages
{
	using System;

	/// <summary>
	/// Фильтры данных, которые необходимо сохранять.
	/// </summary>
	[Flags]
	public enum TraderStorageFilters
	{
		/// <summary>
		/// Не соранять ничего.
		/// </summary>
		None = 0,

		/// <summary>
		/// Сохранять инструмент при его появлении.
		/// </summary>
		NewSecurity = 1,

		/// <summary>
		/// Сохранять инструмент при его изменении.
		/// </summary>
		SecurityChanged = NewSecurity << 1,

		/// <summary>
		/// Сохранять заявку при ее появлении.
		/// </summary>
		NewOrder = SecurityChanged << 1,

		/// <summary>
		/// Сохранять заявку при ее изменении.
		/// </summary>
		OrderChanged = NewOrder << 1,

		/// <summary>
		/// Сохранять ошибку регистрации заявки.
		/// </summary>
		RegisterOrderFailed = OrderChanged << 1,

		/// <summary>
		/// Сохранять ошибку снятия заявки.
		/// </summary>
		RegisterCancelFailed = RegisterOrderFailed << 1,

		/// <summary>
		/// Сохранять сделку при его появлении.
		/// </summary>
		NewTrade = RegisterCancelFailed << 1,

		/// <summary>
		/// Сохранять инструмент при ее появлении.
		/// </summary>
		NewMyTrade = NewTrade << 1,

		/// <summary>
		/// Сохранять позицию при ее изменении.
		/// </summary>
		PositionChanged = NewMyTrade << 1,

		/// <summary>
		/// Сохранять портфель при его появлении.
		/// </summary>
		NewPortfolio = PositionChanged << 1,

		/// <summary>
		/// Сохранять портфель при его изменении.
		/// </summary>
		PortfolioChanged = NewPortfolio << 1,

		/// <summary>
		/// Сохранять стакан котировок.
		/// </summary>
		DepthsChanged = PortfolioChanged << 1,
	}
}